package com.cskaoyan.service.admin;

import com.cskaoyan.bean.BaseParam;
import com.cskaoyan.bean.PageDataVo;
import com.cskaoyan.bean.admin.Log;
import com.cskaoyan.bean.admin.LogExample;
import com.cskaoyan.bean.admin.bo.LogListBo;
import com.cskaoyan.mapper.admin.LogMapper;
import com.cskaoyan.utils.StringUtils;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 类<code>Doc</code>用于：TODO
 *
 * @author Acher
 * @version 1.0
 * @date 2021-10-19
 */
@Service
public class LogServiceImpl implements LogService{

    @Autowired
    LogMapper logMapper;

    @Override
    public PageDataVo query(LogListBo logListBo) {
        String name = logListBo.getName();
        //配置分页信息 → 在执行预编译过程，会帮你拼接分页的sql语句
        PageHelper.startPage(logListBo.getPage(), logListBo.getLimit());
        LogExample example = new LogExample();
        //构造条件 → List<Criterion> → and方法做的事情就是构造一个Criterion的对象添加到List里
        //如果username不为null，拼接条件 and username like '%songge%'
        LogExample.Criteria criteria = example.createCriteria();
        if (!StringUtils.isEmpty(name))
            criteria.andAdminLike("%" + name + "%");
        criteria.andDeletedEqualTo(false);
        //设置排序
        example.setOrderByClause(logListBo.getSort() + " " + logListBo.getOrder());
        List<Log> logList = logMapper.selectByExample(example);
        //分页插件 → 做分页
        //执行完查询之后，可以获得分页结果 → 用哪些数据取决于你的前端需要哪些数据
        //PageInfo中需要传入查询结果
        return PageDataVo.ok(logList);
    }
}
